package com.ming.service.strategy;

import com.ming.pojo.vo.FileUploadVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * 文件上传策略接口
 */
public interface FileUploadStrategy {

    /**
     * 上传文件
     * @param file 上传的文件
     * @param originalFileName 原始文件名
     * @param contentType 文件类型
     * @param fileSize 文件大小
     * @return 文件上传结果
     * @throws IOException IO异常
     */
    FileUploadVO uploadFile(MultipartFile file, String originalFileName, String contentType, long fileSize) throws IOException;

    /**
     * 删除文件
     * @param fileName 文件名或文件路径
     * @throws IOException IO异常
     */
    void deleteFile(String fileName) throws IOException;

    /**
     * 获取存储类型标识
     * @return 存储类型
     */
    String getStorageType();
}